package com.alibaba.citrus.cr.b2b.trade.order.dto.request;

import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
public class ModifyOrderRequest implements Serializable {

    /**
     * 销售单号
     */
    private String tradeOrderId;
    /**
     * 销售单号
     */
    private String outOrderId;
    /**
     * 订单类型
     */
    private String orderType;
    /**
     * 销售机构
     */
    private String saleOrganizationCode;
    /**
     * 销售机构名称
     */
    private String saleOrganizationName;
    /**
     * 业务渠道编码，现代，特通等
     */
    private String sapChannel;
    /**
     * 业务渠道名称
     */
    private String sapChannelName;
    /**
     * 货品组编码
     */
    private String productGroupCode;
    /**
     * 货品组名称
     */
    private String productGroupName;
    /**
     * 创建人
     */
    private String creator;
    /**
     * 修改人ID
     */
    private String modifier;
    /**
     * 销售渠道
     */
    private String saleChannelCode;
    /**
     * 销售渠道名称
     */
    private String saleChannelName;
    /**
     * 销售部门
     */
    private String saleDepartmentCode;
    /**
     * 销售部门名称
     */
    private String saleDepartmentName;
    /**
     * 创建日期
     */
    private String createDate;
    /**
     * 创建时间
     */
    private String createTime;
    /**
     * 修改时间
     */
    private Date gmtModified;
    /**
     * 有效起始日期
     */
    private String beginTime;
    /**
     * 客户编码，SAP客户编码，售达方编码
     */
    private String soldPartCode;
    /**
     * 客户名称
     */
    private String soldPartName;
    /**
     * 收货地址编码，送达方地址
     */
    private String deliveryPartCode;
    /**
     * 收货地址名称
     */
    private String deliveryPartName;
    /**
     * 客户参考日期，期望交货日期
     */
    private Date expectedDeliveryTime;
    /**
     * 装运条件，运输方式编码
     */
    private String shipType;
    /**
     * 装运条件，运输方式名称
     */
    private String shipTypeName;
    /**
     * 备注
     */
    private String remark;
    /**
     * 客户参考号，客户的采购单据
     */
    private String customerReferenceNo;
    /**
     * 现金客户名称
     */
    private String cashCustomerName;
    /**
     * 成本中心
     */
    private String costCenter;
    /**
     * 提交原因，创建销售单原因
     */
    private String createReason;
    /**
     * 定价日期
     */
    private String priceTime;
    /**
     * 扩展信息
     */
    private String features;
    /**
     * 销售子单
     */
    private List<ModifyOrderLineRequest> modifyOrderLineRequests;

    private List<OrderLineSaveInnerRequest> orderDetailList = new ArrayList<>();

    private SaveSaleOrderRequest baseInfo;
}
